import { NextRequest, NextResponse } from "next/server"; import { prisma } from "@/lib/prisma"; import { loadFileData } from "@/lib/storage"; import { logActivity } from "@/lib/activity"; export async function GET( request: NextRequest, { params }: { params: { id: string } } ) { const file = await prisma.file.findUnique({ where: { id: params.id } }); if (!file) { return NextResponse.json({ error: "File not found" }, { status: 404 }); } const data = await loadFileData(file.storagePath, file.isEncrypted); await logActivity("DOWNLOAD", file.id, `Downloaded ${file.name}`); return new NextResponse(new Uint8Array(data), { headers: { "Content-Type": "application/octet-stream", "Content-Disposition": `attachment; filename="${encodeURIComponent(file.name)}"`, "Content-Length": String(data.length), }, }); }